package chromedp

import (
	"context"
	"log"
	"os"

	"github.com/chromedp/chromedp"
)

func Capture(url string, fileName string) {
	// 创建一个上下文
	ctx, cancel := chromedp.NewContext(context.Background())
	defer cancel()

	// 指定一个图片文件来保存截图
	file, err := os.Create(fileName)
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	// 获取并保存网页截图
	var buf []byte
	if err := chromedp.Run(ctx, Screenshot(url, &buf)); err != nil {
		log.Fatal(err)
	}

	file.Write(buf)
}

// screenshot 捕获指定网页的截图
func Screenshot(url string, buf *[]byte) chromedp.Tasks {
	return chromedp.Tasks{
		chromedp.Navigate(url),
		chromedp.Sleep(1000), // 等待1000毫秒，确保页面加载完成
		chromedp.CaptureScreenshot(buf),
	}
}
